1. Technical Field
The present invention relates generally to an improved integrated circuit device. More specifically, the present invention is directed to an apparatus and method for providing a reprogrammable electrical programmable fuse (eFuse).
2. Description of Related Art
An electrical programmable fuse (eFuse) is a simple circuit element that has one of two different states: blown or unblown. As is generally known in the art, the writing of data to eFuses involves the blowing of eFuses to represent a “1” and the leaving of eFuses in their default state, i.e. unblown, to represent a “0” value. In the unblown state, the eFuse enables an electrical contact while in the blown state, the electrical contact is severed. However, the opposite approach may be taken in the case of, for example, inverse eFuses in which blowing of the eFuse actually enables an electrical contact thereby representing a “0” with the default state representing a “1.”
Many integrated circuit chips available from International Business Machines, Inc., already include one or more banks of eFuses that are used to provide a self-repair ability to the integrated circuit chip. With eFuses, if an imperfection is detected in the integrated circuit, the appropriate eFuses are tripped, i.e. blown. The activated fuses help the chip control individual circuit speed to manage power consumption and repair unexpected, and potentially costly, flaws. If the technology detects that the chip is malfunctioning because individual circuits are running too fast or too slow, it can “throttle down” these circuits or speed them up by controlling appropriate local voltage. The eFuses are provided in the integrated circuit chips with little if any additional cost to the integrated circuit chips.
FIG. 1 is a diagram of an eFuse in accordance with a known structure. As shown in FIG. 1, the eFuse element 100 consists of several components including a polysilicon fuse 110, a fuse latch 120, a program latch 130, a program field effect transistor (FET) 140, and a look-ahead programming multiplexer 150. The first, and primary component is the polysilicon fuse 110. The fuse 110 has two possible logic states. In the depicted example, it can remain intact where its value is evaluated as a logical “zero.” The other state is “programmed” and evaluates to a logical “one.” A DC current pulse of approximately 10 mA in amplitude and duration of 200 μsec is required to program the fuse 110. This high current programs the fuse 110 by dynamically increasing the resistance of the polysilicon link.
A fuse latch 120 is associated with each fuse 110. The fuse latch 120 serves three functions: (1) during fuse programming, all fuse latches 120 are initialized to a logical “zero,” and then a single logical “one” is shifted through, providing a sequence enabling mechanism to determine when to program each fuse 110; (2) when reading the fuse values, the fuse latch 120 is used to sense and store the fuse value; and (3) the fuse latch has an additional data port, used to create a daisy chain between all fuses, which permits serial access to all fuses. Because of the high DC current requirements required to program a single fuse, a logical “one” is shifted through a field of zeros using the daisy chained state latches in order to program one fuse at a time.
The remaining components of the eFuse 100 are functional only when programming the fuse 110. The desired state of the fuse is shifted into the program latch 130. When a program latch 130 is loaded with a logical “one,” it selects the program FET 140 and also disables the look-ahead programming multiplexer 150. The look-ahead programming multiplexer 150 causes the fuse latch's shifted “one” to skip over fuses which are not selected for programming, thereby saving fuse programming time.
For programming to occur, the EFuseProg signal is enabled and a high voltage is places across the fuse 110 using the FSource input and the resulting current is sunk through the program FET 140. Only when this high current path is enabled can the fuse be programmed. The program FET 140 is enabled when the program latch 130 is set and the shifted “one” arrives at the fuse latch 120. For more information regarding eFuses and the use of eFuses to perform on-chip repair, reference is made to Cowan et al., “On-Chip Repair and an ATE Independent Fusing Methodology,” ITC International Test Conference, IEEE 2002, pages 178–186, which is hereby incorporated by reference.
As mentioned above, electrically programmable fuses have been used by International Business Machines, Inc. to replace metal and laser fuses to electrically program the operation settings on a circuit or fix the failed circuit on a chip. However, as is evident from the above description, the current eFuse technology utilizes the low-to-high change of the eFuse resistance as the manner by which the eFuse is programmed. In so doing, the eFuse can only be programmed once and cannot be reprogrammed.
Because of this limitation, eFuses, under the current technology, are not appropriate for use in applications where reprogrammability is required. For example, eFuses cannot be used in electrically erasable programmable read only memory (EEPROM) applications, which typically require that the EEPROM be written to, read, and erased in a reprogrammable manner.